import { get } from './base'
import type { ApiResponse } from './base'
import type { ProcessingTask } from '../types/home'

// 处理任务配置接口
export interface ProcessingTaskConfig {
  id: number
  title: string
  description: string
  icon: string
  details: {
    title: string
    items: string[]
  }
  order: number
}

// 获取处理任务配置
export async function getProcessingTaskConfig(type: string): Promise<ProcessingTask[]> {
  try {
    // 如果有真实API，使用真实API
    // const response = await get<ProcessingTaskConfig[]>(`/processing/tasks/${type}`)
    // return response.data.map(config => ({
    //   ...config,
    //   status: 'pending' as const,
    //   showDetails: false
    // }))
    
    // 模拟数据，从Home.vue中提取的配置
    const taskConfig: Record<string, ProcessingTaskConfig[]> = {
      knowledge: [
        {
          id: 1,
          title: '1. 问题解析',
          description: '分析用户问题意图',
          icon: 'fas fa-search',
          details: {
            title: '问题解析流程',
            items: [
              '✓ 识别问题领域：环境监测技术',
              '✓ 提取关键实体：深圳监测站、地表水、铜、分析方法',
              '✓ 确定查询目标：获取具体的铜分析方法列表',
              '✓ 分析查询深度：需要包括技术参数和标准依据'
            ]
          },
          order: 1
        },
        {
          id: 2,
          title: '2. 知识检索',
          description: '检索内部知识库',
          icon: 'fas fa-database',
          details: {
            title: '知识检索流程',
            items: [
              '✓ 搜索国家标准库：GB 3838-2002等水质标准',
              '✓ 检索行业规范：HJ系列环境监测标准',
              '✓ 查询技术文档：水和废水监测分析方法',
              '✓ 筛选相关方法：过滤出铜的专项分析方法'
            ]
          },
          order: 2
        },
        {
          id: 3,
          title: '3. 互联网搜索',
          description: '搜索最新技术资料',
          icon: 'fas fa-globe',
          details: {
            title: '互联网搜索流程',
            items: [
              '✓ 搜索最新技术进展：深圳监测站技术设备更新',
              '✓ 查找行业动态：水质监测技术发展趋势',
              '✓ 收集实践案例：其他城市的先进经验',
              '✓ 整合技术资料：形成完整的技术参考'
            ]
          },
          order: 3
        },
        {
          id: 4,
          title: '4. 生成回复',
          description: '整理并生成最终回复',
          icon: 'fas fa-file-alt',
          details: {
            title: '回复生成流程',
            items: [
              '✓ 整合分析方法：汇总各种检测技术参数',
              '✓ 核验标准依据：确保引用最新的国家标准',
              '✓ 优化表达方式：按照重要性和实用性排序',
              '✓ 添加实用信息：包括检测限、适用范围等关键信息'
            ]
          },
          order: 4
        }
      ],
      data: [
        {
          id: 1,
          title: '1. 需求分析',
          description: '理解用户数据查询需求',
          icon: 'fas fa-search',
          details: {
            title: '需求分析流程',
            items: [
              '✓ 分析查询目标：深圳AQI趋势分析',
              '✓ 确定时间范围：最近一个月的数据',
              '✓ 识别数据类型：空气质量指数时间序列',
              '✓ 明确输出要求：趋势分析和可视化展示'
            ]
          },
          order: 1
        },
        {
          id: 2,
          title: '2. SQL生成',
          description: '生成SQL查询语句',
          icon: 'fas fa-code',
          details: {
            title: 'SQL生成流程',
            items: [
              '✓ 分析数据表结构：确定air_quality_data表字段',
              '✓ 编写查询语句：生成查询深圳30天AQI数据的SQL',
              '✓ 优化查询性能：添加索引和查询条件优化',
              '✓ 验证SQL语法：确保查询语句正确无误'
            ]
          },
          order: 2
        },
        {
          id: 3,
          title: '3. 数据查询',
          description: '查询环境监测数据库',
          icon: 'fas fa-database',
          details: {
            title: '数据查询流程',
            items: [
              '✓ 连接数据库：建立与深圳环境监测数据库的连接',
              '✓ 执行查询：运行SQL查询获取数据',
              '✓ 数据验证：检查数据完整性和准确性',
              '✓ 结果处理：格式化查询结果'
            ]
          },
          order: 3
        },
        {
          id: 4,
          title: '4. 数据处理',
          description: '进行趋势和统计分析',
          icon: 'fas fa-chart-line',
          details: {
            title: '数据处理流程',
            items: [
              '✓ 数据清洗：处理缺失值和异常值',
              '✓ 趋势分析：计算AQI的变化趋势',
              '✓ 统计分析：计算平均值、最大值、最小值等',
              '✓ 可视化准备：为图表展示准备数据'
            ]
          },
          order: 4
        },
        {
          id: 5,
          title: '5. 生成报告',
          description: '生成分析报告和可视化',
          icon: 'fas fa-file-alt',
          details: {
            title: '报告生成流程',
            items: [
              '✓ 生成统计图表：创建AQI趋势图',
              '✓ 撰写分析报告：提供详细的数据分析结果',
              '✓ 提出建议：基于数据分析给出环保建议',
              '✓ 格式化输出：生成用户友好的报告格式'
            ]
          },
          order: 5
        }
      ],
      image: [
        {
          id: 1,
          title: '1. 图像识别',
          description: '识别图像内容和类型',
          icon: 'fas fa-eye',
          details: {
            title: '图像识别流程',
            items: [
              '✓ 图像预处理：调整图像大小和质量',
              '✓ 对象检测：识别图像中的图表和文字',
              '✓ 类型识别：确定为臭氧变化趋势图',
              '✓ 内容解析：提取图像中的关键信息'
            ]
          },
          order: 1
        },
        {
          id: 2,
          title: '2. 数据提取',
          description: '提取图表中的数据',
          icon: 'fas fa-chart-bar',
          details: {
            title: '数据提取流程',
            items: [
              '✓ 坐标识别：识别X轴和Y轴的坐标系统',
              '✓ 数据点提取：从趋势线中提取关键数据点',
              '✓ 数值转换：将像素坐标转换为实际数值',
              '✓ 数据验证：验证提取数据的准确性'
            ]
          },
          order: 2
        },
        {
          id: 3,
          title: '3. 趋势分析',
          description: '分析数据变化趋势',
          icon: 'fas fa-chart-line',
          details: {
            title: '趋势分析流程',
            items: [
              '✓ 数据整理：按时间顺序整理提取的数据',
              '✓ 趋势计算：计算臭氧浓度的变化趋势',
              '✓ 周期性分析：分析数据的周期性变化',
              '✓ 异常检测：识别数据中的异常点'
            ]
          },
          order: 3
        },
        {
          id: 4,
          title: '4. 生成回复',
          description: '生成分析报告',
          icon: 'fas fa-file-alt',
          details: {
            title: '报告生成流程',
            items: [
              '✓ 结果总结：总结臭氧变化的主要特征',
              '✓ 趋势描述：详细描述变化趋势和模式',
              '✓ 原因分析：分析可能的成因和影响因素',
              '✓ 建议提出：基于分析结果提出相关建议'
            ]
          },
          order: 4
        }
      ],
      code: [
        {
          id: 1,
          title: '1. 代码分析',
          description: '分析代码结构和逻辑',
          icon: 'fas fa-code',
          details: {
            title: '代码分析流程',
            items: [
              '✓ 语法检查：检查代码语法错误',
              '✓ 结构分析：分析代码的整体结构和模块',
              '✓ 算法识别：识别使用的算法和数据结构',
              '✓ 复杂度分析：分析时间和空间复杂度'
            ]
          },
          order: 1
        },
        {
          id: 2,
          title: '2. 性能检测',
          description: '检测性能问题和瓶颈',
          icon: 'fas fa-tachometer-alt',
          details: {
            title: '性能检测流程',
            items: [
              '✓ 瓶颈识别：识别性能瓶颈所在',
              '✓ 内存分析：分析内存使用情况和泄漏风险',
              '✓ 执行效率：评估代码执行效率',
              '✓ 资源消耗：分析CPU和其他资源的消耗'
            ]
          },
          order: 2
        },
        {
          id: 3,
          title: '3. 优化建议',
          description: '提供优化建议',
          icon: 'fas fa-lightbulb',
          details: {
            title: '优化建议流程',
            items: [
              '✓ 算法优化：推荐更高效的算法',
              '✓ 代码重构：建议代码重构方案',
              '✓ 并行化：建议并行化处理方案',
              '✓ 缓存策略：推荐合适的缓存策略'
            ]
          },
          order: 3
        },
        {
          id: 4,
          title: '4. 最佳实践',
          description: '提供编码最佳实践',
          icon: 'fas fa-star',
          details: {
            title: '最佳实践流程',
            items: [
              '✓ 代码规范：建议遵循的编码规范',
              '✓ 设计模式：推荐适用的设计模式',
              '✓ 错误处理：建议完善的错误处理机制',
              '✓ 测试策略：推荐单元测试和集成测试策略'
            ]
          },
          order: 4
        }
      ],
      general: [
        {
          id: 1,
          title: '1. 问题解析',
          description: '分析用户问题意图',
          icon: 'fas fa-search',
          details: {
            title: '问题解析流程',
            items: [
              '✓ 问题类型：一般知识查询',
              '✓ 查询对象：技术相关信息',
              '✓ 信息深度：需要详细解答',
              '✓ 输出格式：结构化回答'
            ]
          },
          order: 1
        },
        {
          id: 2,
          title: '2. 知识检索',
          description: '检索内部知识库',
          icon: 'fas fa-database',
          details: {
            title: '知识检索流程',
            items: [
              '✓ 搜索关键词：提取查询关键词',
              '✓ 文档匹配：匹配相关技术文档',
              '✓ 内容筛选：筛选最相关的内容',
              '✓ 信息整合：整合多源信息'
            ]
          },
          order: 2
        },
        {
          id: 3,
          title: '3. 互联网搜索',
          description: '搜索最新技术资料',
          icon: 'fas fa-globe',
          details: {
            title: '互联网搜索流程',
            items: [
              '✓ 实时搜索：搜索最新技术资料',
              '✓ 来源验证：验证信息来源可靠性',
              '✓ 内容更新：确保信息的时效性',
              '✓ 多源整合：整合多个来源的信息'
            ]
          },
          order: 3
        },
        {
          id: 4,
          title: '4. 生成回复',
          description: '整理并生成最终回复',
          icon: 'fas fa-file-alt',
          details: {
            title: '回复生成流程',
            items: [
              '✓ 信息整合：整合检索到的信息',
              '✓ 结构化组织：按照逻辑顺序组织内容',
              '✓ 语言优化：优化表达方式',
              '✓ 质量检查：确保回答的准确性和完整性'
            ]
          },
          order: 4
        }
      ]
    }
    
    const configs = taskConfig[type] || taskConfig.general
    return configs.map(config => ({
      ...config,
      status: 'pending' as const,
      showDetails: false
    }))
  } catch (error) {
    console.error(`Failed to get processing task config for type ${type}:`, error)
    throw error
  }
}